package org.toxsoft.uskat.s5.server.interceptors;

import javax.ejb.LockType;
import javax.ejb.TransactionAttributeType;

/**
 * Объект перехватчика (интерсепция) определенных операций над сущностями системы
 * <p>
 * Примечание по реализации:<br>
 * В интерфейсе перехватчика ЗАПРЕЩЕНО делать реализацию методов перехвата по умолчанию (default). При включении в
 * бизнес-интерфейс бинов таких методов, и не переопределенных в реализации бина, приводит к тому, что политики
 * управления доступом к бину {@link LockType} и управления транзакционностью {@link TransactionAttributeType} для этих
 * методов будут неопределенными и/или недопустимыми для usecase бина. Попытки аннотировать default-методы в самом
 * интерфейсе игнорируются контейнером бинов.
 * <p>
 * По этим причинам конечная реализация перехватчика должна определять реализацию требуемых методов самостоятельно решая
 * вопросы доступа к своим бинам. Чаще всего достаточно для всех методов перехвата определять аннотации:<br>
 * <code>
 *      &#64;TransactionAttribute( TransactionAttributeType.MANDATORY )
 *      &#64;Lock( LockType.READ )
 *      &#64;Override
 *      public void method(){
 *         // nop
 *      }
 * </code>
 *
 * @author mvk
 */
public interface IS5Interceptor {
  // nop
}
